Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

123

Games Picked

179

Number of predictions

124

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Pittsburgh Steelers Cleveland Browns No 4 0.0323
2 Detroit Lions Detroit Lions Yes 120 0.9677
3 Washington Commanders Dallas Cowboys No 6 0.0484
4 Kansas City Chiefs Kansas City Chiefs Yes 123 0.9919
5 Minnesota Vikings Minnesota Vikings Yes 115 0.9274
6 Miami Dolphins Miami Dolphins Yes 112 0.9032
7 Tampa Bay Buccaneers Tampa Bay Buccaneers Yes 112 0.9032
8 Houston Texans Tennessee Titans No 3 0.0242
9 Denver Broncos Denver Broncos Yes 119 0.9597
10 Seattle Seahawks Seattle Seahawks Yes 64 0.5161
11 Green Bay Packers Green Bay Packers Yes 94 0.7581
12 Philadelphia Eagles Philadelphia Eagles Yes 98 0.7903
13 Baltimore Ravens Baltimore Ravens Yes 88 0.7097

Individual Predictions

row

Individual Table

Individual Results
Week 12
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12
Aubrey Conn 13 7 10 9 8 12 12 9 13 9 10 11 0.8462 12 0.6872 0.6872
George Sweet 13 9 6 10 11 9 11 11 12 7 10 11 0.8462 12 0.6704 0.6704
Shaun Dahl 14 7 9 11 10 10 10 8 9 11 8 11 0.8462 12 0.6592 0.6592
Brittany Pillar NA NA NA NA NA 10 12 NA NA 10 11 10 0.7692 5 0.7571 0.3155
Steven Maisonneuve NA NA NA NA 11 10 11 12 11 8 NA 10 0.7692 7 0.7228 0.4216
Robert Cunningham 14 9 10 12 8 12 11 11 12 9 11 10 0.7692 12 0.7207 0.7207
Michael Pacifico 13 8 7 9 9 12 12 10 14 9 11 10 0.7692 12 0.6927 0.6927
Nathan Brown 13 8 9 11 9 NA 10 11 14 9 10 10 0.7692 11 0.6909 0.6333
Keven Talbert 10 7 9 11 9 14 13 9 9 11 10 10 0.7692 12 0.6816 0.6816
Heather Kohler 12 NA 7 12 9 11 NA 12 NA 8 9 10 0.7692 9 0.6767 0.5075
Matthew Schultz 13 10 9 8 9 9 9 12 11 8 11 10 0.7692 12 0.6648 0.6648
Heather Ellenberger 13 8 7 8 7 12 11 11 13 9 9 10 0.7692 12 0.6592 0.6592
Jennifer Bouland 13 8 10 7 8 11 10 11 9 9 12 10 0.7692 12 0.6592 0.6592
Bradley Hobson 13 7 8 11 7 13 10 10 11 8 NA 10 0.7692 11 0.6545 0.6000
Brayant Rivera 10 8 9 8 6 13 11 10 12 9 11 10 0.7692 12 0.6536 0.6536
Clevante Granville 9 11 NA NA 5 11 11 9 10 11 9 10 0.7692 10 0.6531 0.5442
Michelle Fraterrigo 11 8 9 9 7 11 12 12 11 8 8 10 0.7692 12 0.6480 0.6480
Daniel Baller 14 6 9 8 7 9 10 12 10 10 10 10 0.7692 12 0.6425 0.6425
Jason Schattel 13 7 6 9 10 11 9 10 11 9 10 10 0.7692 12 0.6425 0.6425
Pablo Burgosramos 9 5 8 9 5 14 12 12 12 7 11 10 0.7692 12 0.6369 0.6369
Nahir Shepard 11 8 10 8 6 12 8 12 9 9 11 10 0.7692 12 0.6369 0.6369
George Mancini 11 8 6 NA 8 6 12 NA 11 9 11 10 0.7692 10 0.6259 0.5216
Edward Ford 9 7 6 10 5 10 10 13 11 9 12 10 0.7692 12 0.6257 0.6257
Earl Dixon 10 9 6 9 9 NA 11 10 9 9 10 10 0.7692 11 0.6182 0.5667
Kamar Morgan 12 6 8 5 8 12 9 12 10 8 10 10 0.7692 12 0.6145 0.6145
Jonathon Leslein 10 8 7 10 8 12 10 10 8 10 7 10 0.7692 12 0.6145 0.6145
Darvin Graham 12 7 6 9 8 11 9 NA 10 9 9 10 0.7692 11 0.6135 0.5624
Trevor Macgavin 12 7 10 8 8 8 9 7 10 7 11 10 0.7692 12 0.5978 0.5978
Ryan Shipley 11 6 10 8 5 9 11 NA 10 NA 9 10 0.7692 10 0.5973 0.4978
Ronald Schmidt 10 10 5 9 6 8 12 10 NA 7 9 10 0.7692 11 0.5854 0.5366
Wayne Schofield 7 5 9 5 7 7 11 11 10 8 13 10 0.7692 12 0.5754 0.5754
Robert Gelo 14 8 9 9 8 13 13 11 12 10 10 9 0.6923 12 0.7039 0.7039
Terrence Lee 11 NA NA NA NA NA NA NA NA NA NA 9 0.6923 2 0.6897 0.1149
Bruce Williams 13 9 10 8 9 13 12 10 NA 10 10 9 0.6923 11 0.6890 0.6316
Nicholas Cinco 12 8 NA NA 6 11 11 12 11 11 8 9 0.6923 10 0.6735 0.5612
Chester Todd 13 8 8 8 9 13 13 10 9 9 11 9 0.6923 12 0.6704 0.6704
Randy Dick 11 7 8 8 9 14 10 10 13 11 10 9 0.6923 12 0.6704 0.6704
Pamela Augustine 14 9 9 NA 7 11 9 NA 10 NA 10 9 0.6923 9 0.6617 0.4963
Anthony Bloss 13 8 8 11 8 13 11 11 9 7 10 9 0.6923 12 0.6592 0.6592
Christopher Sims 11 9 10 8 7 10 12 14 11 9 8 9 0.6923 12 0.6592 0.6592
Gregory Brown 15 7 6 9 8 12 9 9 13 9 10 9 0.6923 12 0.6480 0.6480
Bryson Scott 10 9 7 NA 7 12 11 12 10 9 NA 9 0.6923 10 0.6443 0.5369
Ryan Cvik 10 8 9 11 9 11 11 13 10 7 7 9 0.6923 12 0.6425 0.6425
Philip Driskill 12 7 8 10 8 NA 13 11 10 NA NA 9 0.6923 9 0.6423 0.4817
Karen Coleman 13 6 NA 11 9 9 10 9 11 8 9 9 0.6923 11 0.6380 0.5848
Thomas Brenstuhl 9 8 NA 6 7 9 10 13 11 9 13 9 0.6923 11 0.6380 0.5848
Daniel Major 8 10 11 6 8 11 NA 10 10 10 11 9 0.6923 11 0.6341 0.5813
Walter Archambo 8 8 7 9 6 12 11 11 12 10 10 9 0.6923 12 0.6313 0.6313
Richard Beeghley 11 7 6 11 7 14 10 10 10 8 9 9 0.6923 12 0.6257 0.6257
Steward Hogans 10 7 10 NA NA NA NA 10 13 8 8 9 0.6923 8 0.6250 0.4167
Antonio Mitchell 11 7 8 9 9 11 10 11 10 8 8 9 0.6923 12 0.6201 0.6201
Stephen Bush 9 7 4 10 9 13 13 9 10 10 8 9 0.6923 12 0.6201 0.6201
Montee Brown 10 6 8 7 8 14 11 10 8 10 10 9 0.6923 12 0.6201 0.6201
David Plate 10 8 8 8 9 NA NA NA 13 10 8 9 0.6923 9 0.6194 0.4645
Karen Richardson 10 9 7 9 11 8 8 12 8 10 9 9 0.6923 12 0.6145 0.6145
Nicholas Nguyen 11 8 5 8 7 12 11 9 10 9 10 9 0.6923 12 0.6089 0.6089
Cheryl Brown 11 6 9 8 8 10 NA 9 8 10 11 9 0.6923 11 0.6037 0.5534
Jason Jackson 12 7 5 6 5 12 9 11 10 10 12 9 0.6923 12 0.6034 0.6034
Louie Renew 9 8 12 4 10 8 8 11 11 8 10 9 0.6923 12 0.6034 0.6034
Christopher Mulcahy 11 9 7 8 NA 8 9 9 10 9 10 9 0.6923 11 0.6000 0.5500
Michael Moore 11 6 7 7 8 12 NA 9 9 NA 12 9 0.6923 10 0.6000 0.5000
Joshua Tracey 12 5 8 6 7 NA 9 13 10 7 10 9 0.6923 11 0.5818 0.5333
Anthony Rockemore 13 8 6 8 7 NA 8 NA NA 9 9 9 0.6923 9 0.5746 0.4310
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 10 7 7 9 9 0.6923 9 0.5564 0.4173
Robert Martin 7 NA 9 8 8 8 7 NA 8 7 7 9 0.6923 10 0.5306 0.4422
Ashley Johnson 9 NA 6 NA 6 NA NA NA NA NA 5 9 0.6923 5 0.4795 0.1998
Matthew Blair NA NA NA NA NA 11 10 12 10 9 11 8 0.6154 7 0.7030 0.4101
David Dupree 13 8 10 9 7 11 11 11 12 NA 9 8 0.6154 11 0.6606 0.6055
Kevin Kehoe 13 7 9 10 8 13 12 11 9 8 8 8 0.6154 12 0.6480 0.6480
William Schouviller 12 7 9 9 11 13 10 9 NA 7 11 8 0.6154 11 0.6463 0.5924
Jeremy Stieler 11 9 6 11 6 13 11 11 11 9 9 8 0.6154 12 0.6425 0.6425
Shawn Carden 10 9 10 10 8 11 10 11 11 9 8 8 0.6154 12 0.6425 0.6425
George Brown 14 7 8 7 6 11 10 12 9 12 11 8 0.6154 12 0.6425 0.6425
Daniel Halse 12 6 8 10 7 13 9 11 11 11 NA 8 0.6154 11 0.6424 0.5889
Brian Hollmann NA NA NA 8 8 10 10 11 9 8 12 8 0.6154 9 0.6412 0.4809
Robert Sokol 10 8 NA NA 6 9 9 13 12 9 10 8 0.6154 10 0.6395 0.5329
Nicole Dike 13 7 8 10 7 10 10 12 10 9 10 8 0.6154 12 0.6369 0.6369
Kevin Buettner 12 8 8 10 7 11 10 9 10 10 10 8 0.6154 12 0.6313 0.6313
Ryan Baum 14 4 9 10 9 NA 10 10 11 10 NA 8 0.6154 10 0.6291 0.5242
Jeffrey Rudderforth 11 11 10 9 6 7 10 11 12 9 8 8 0.6154 12 0.6257 0.6257
Thomas Mccoy 10 7 6 8 9 11 11 10 12 10 10 8 0.6154 12 0.6257 0.6257
Scott Lefton 10 8 8 7 7 11 11 10 11 10 10 8 0.6154 12 0.6201 0.6201
Noah Gosswiller 8 7 NA 10 8 NA 10 11 10 10 10 8 0.6154 10 0.6174 0.5145
Anthony Brinson 11 7 NA 9 10 11 9 12 6 NA NA 8 0.6154 9 0.6148 0.4611
Jennifer Arty 10 7 9 7 7 12 8 12 11 9 10 8 0.6154 12 0.6145 0.6145
Diance Durand 9 9 12 7 8 10 9 11 11 7 9 8 0.6154 12 0.6145 0.6145
Paul Seitz 11 9 9 NA 8 10 11 NA NA 7 8 8 0.6154 9 0.6136 0.4602
Zechariah Ziebarth 8 8 8 10 5 10 10 11 11 NA 12 8 0.6154 11 0.6121 0.5611
Ramar Williams 10 8 7 11 8 11 11 10 8 8 9 8 0.6154 12 0.6089 0.6089
Yiming Hu 12 NA 7 7 6 8 12 9 NA 9 12 8 0.6154 10 0.6081 0.5068
Cade Martinez 10 7 8 8 6 11 11 9 10 10 9 8 0.6154 12 0.5978 0.5978
Kristen White 14 7 9 9 8 9 9 8 8 9 9 8 0.6154 12 0.5978 0.5978
Jeffrey Zornes 9 11 6 8 7 10 9 11 9 10 NA 8 0.6154 11 0.5939 0.5444
Melissa Printup 8 9 9 6 10 10 10 10 7 10 9 8 0.6154 12 0.5922 0.5922
Marcus Evans 11 8 NA 8 7 10 7 9 10 6 11 8 0.6154 11 0.5828 0.5342
Kyle May 10 8 5 6 8 NA 12 10 9 8 8 8 0.6154 11 0.5576 0.5111
Steven Webster 7 7 9 6 7 9 NA 11 NA 8 10 8 0.6154 10 0.5503 0.4586
Gary Lawrence 10 6 5 5 7 9 9 10 9 9 11 8 0.6154 12 0.5475 0.5475
Robert Lynch 6 9 8 6 9 7 7 12 NA 9 7 8 0.6154 11 0.5366 0.4919
Randolph Tidd 11 7 8 12 NA 12 11 12 13 9 11 7 0.5385 11 0.6848 0.6277
Chris Papageorge 14 8 10 11 8 12 12 12 11 8 9 7 0.5385 12 0.6816 0.6816
Marc Agne 14 7 9 13 6 13 10 9 12 10 10 7 0.5385 12 0.6704 0.6704
Rafael Torres 12 9 8 7 8 10 12 10 12 11 11 7 0.5385 12 0.6536 0.6536
Darryle Sellers 11 11 6 8 9 11 9 10 12 9 12 7 0.5385 12 0.6425 0.6425
Jared Kaanga 11 9 9 8 7 10 9 11 13 9 9 7 0.5385 12 0.6257 0.6257
Michael Branson 9 8 8 9 8 11 9 11 10 9 11 7 0.5385 12 0.6145 0.6145
Terry Hardison 13 8 6 7 4 11 10 12 11 9 11 7 0.5385 12 0.6089 0.6089
Brian Patterson 11 6 9 9 6 NA 9 13 NA 9 12 7 0.5385 10 0.6067 0.5056
Vincent Scannelli 11 7 7 11 8 8 11 12 9 8 9 7 0.5385 12 0.6034 0.6034
Derrick Elam 13 9 8 11 7 10 8 9 NA NA NA 7 0.5385 9 0.6029 0.4522
Rachel Follo 15 8 6 6 9 7 10 11 9 9 10 7 0.5385 12 0.5978 0.5978
Jose Torres Mendoza 12 8 8 8 NA NA 8 9 10 11 8 7 0.5385 10 0.5894 0.4912
Megan Fitzgerald 8 11 9 10 NA NA 8 10 NA NA NA 7 0.5385 7 0.5833 0.3403
Akilah Gamble 9 NA 12 9 6 8 12 6 NA 8 NA 7 0.5385 9 0.5746 0.4310
Jonathan Smith 11 NA 4 10 7 NA 8 11 10 7 9 7 0.5385 10 0.5638 0.4698
Jack Wheeler 9 6 5 10 8 NA 9 9 10 8 10 7 0.5385 11 0.5515 0.5055
Patrick Tynan 12 8 7 9 8 12 NA 12 12 10 10 6 0.4615 11 0.6463 0.5924
Michael Moss 13 8 8 8 10 13 8 9 11 9 10 6 0.4615 12 0.6313 0.6313
Brandon Parks 12 6 9 9 6 13 NA NA 12 10 10 6 0.4615 10 0.6284 0.5237
James Small 12 NA 9 10 8 10 9 9 10 10 NA 6 0.4615 10 0.6242 0.5202
David Humes 10 9 8 11 5 8 12 8 12 11 11 6 0.4615 12 0.6201 0.6201
Gabriel Quinones 10 7 6 9 NA 11 8 7 NA NA NA 6 0.4615 8 0.5246 0.3497
Andrew Gray 5 8 9 7 NA NA 7 9 7 11 8 6 0.4615 10 0.5099 0.4249
Matthew Olguin 10 8 9 9 7 12 11 11 9 7 8 5 0.3846 12 0.5922 0.5922
Clayton Grimes 14 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.8750 0.0729
Tanaysa Henderson NA NA NA NA NA 12 NA NA NA NA NA NA 0.0000 1 0.8571 0.0714
Wallace Savage 12 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0625
Brian Holder 12 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0625
Sandra Carter 12 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0625
Ryan Wiggins NA NA NA NA NA NA NA NA 11 NA NA NA 0.0000 1 0.7333 0.0611
Jeremy Krammes 12 NA NA NA NA NA NA 10 NA 10 NA NA 0.0000 3 0.6957 0.1739
Daniel Gray 11 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.6875 0.0573
Michael Linder 11 9 9 NA NA 12 10 11 10 NA 11 NA 0.0000 8 0.6803 0.4535
Jeremy Mounce 12 8 8 NA 10 12 NA NA NA 10 10 NA 0.0000 7 0.6731 0.3926
Erik Neumann 12 8 9 9 7 13 10 11 12 9 10 NA 0.0000 11 0.6627 0.6075
Travis Delagardelle 11 12 10 8 6 11 12 11 11 9 9 NA 0.0000 11 0.6627 0.6075
George Hall 12 NA 8 NA NA NA NA NA NA 10 NA NA 0.0000 3 0.6522 0.1630
Paul Presti 12 8 9 12 7 11 8 10 NA 10 9 NA 0.0000 10 0.6358 0.5298
Jordan Forwood 11 8 6 11 NA 13 NA 10 NA NA NA NA 0.0000 6 0.6277 0.3138
Kenneth Nielsen 13 8 7 NA 8 9 11 10 NA NA NA NA 0.0000 7 0.6168 0.3598
David Hadley 13 10 8 NA 8 NA 8 NA NA NA NA NA 0.0000 5 0.6104 0.2543
Keisha Vasquez 8 7 9 9 11 11 9 12 8 8 NA NA 0.0000 10 0.6053 0.5044
Wayne Gokey 13 7 NA 11 NA NA 8 NA 8 NA NA NA 0.0000 5 0.6026 0.2511
Jonathan Knight 13 10 9 6 7 NA 11 NA NA NA NA NA 0.0000 6 0.6022 0.3011
Amy Asberry 11 8 6 10 NA 12 9 NA 9 8 NA NA 0.0000 8 0.5984 0.3989
Kevin Green 11 9 NA 8 7 12 NA 8 NA NA NA NA 0.0000 6 0.5978 0.2989
Jeffrey Dusza 11 8 NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.0990
Cherylynn Vidal 13 9 8 8 NA NA NA NA NA NA NA NA 0.0000 4 0.5938 0.1979
Adam Konkle 10 9 NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.0990
Thomas Cho 10 6 NA 11 7 12 NA 8 9 NA NA NA 0.0000 7 0.5888 0.3435
Tara Bridgett 11 8 8 8 NA 9 NA 10 10 NA NA NA 0.0000 7 0.5872 0.3425
Jason Miranda 10 7 8 NA 9 11 8 NA NA NA NA NA 0.0000 6 0.5824 0.2912
Jennifer Wilson 11 9 10 6 NA 7 11 NA NA NA NA NA 0.0000 6 0.5806 0.2903
Bunnaro Sun 12 5 8 11 6 8 9 9 12 8 8 NA 0.0000 11 0.5783 0.5301
Joseph Martin 10 7 8 8 8 10 9 NA NA NA NA NA 0.0000 7 0.5607 0.3271
Desmond Jenkins 10 7 7 NA 7 12 8 NA NA NA NA NA 0.0000 6 0.5604 0.2802
Min Choi 10 NA 7 NA 8 7 NA 10 NA NA NA NA 0.0000 5 0.5526 0.2303
Richard Conkle 7 6 6 8 7 10 12 11 9 NA 8 NA 0.0000 10 0.5526 0.4605
Lawrence Thuotte 9 5 12 NA 8 NA NA NA NA NA NA NA 0.0000 4 0.5484 0.1828
Donald Park 9 NA 6 NA NA 10 NA NA NA NA NA NA 0.0000 3 0.5435 0.1359
Monte Henderson 9 8 NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.0885
David Kim 9 8 NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.0885
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA NA NA NA NA NA 0.0000 6 0.5217 0.2609
Jay Kelly 10 9 7 7 5 10 7 NA NA NA NA NA 0.0000 7 0.5140 0.2998
Zachary Brosemer 8 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0417
Antonio Chapa 8 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0417
Vincent Kandian 9 8 8 7 NA NA NA NA NA NA NA NA 0.0000 4 0.5000 0.1667
Ashlyn Dortch 9 NA NA 8 NA 5 9 6 NA NA NA NA 0.0000 5 0.4805 0.2002
Gabrieal Feiling 10 NA 5 NA NA NA NA NA NA NA NA NA 0.0000 2 0.4688 0.0781
Jasprin Smith 6 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0312
Robert Epps NA 6 NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0312

Season Leaderboard

Season Leaderboard (Season Percent)
Week 12
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.0729
2 Tanaysa Henderson 0 1 0.8571 0.0714
3 Brittany Pillar 0 5 0.7571 0.3155
4 Brian Holder 0 1 0.7500 0.0625
4 Sandra Carter 0 1 0.7500 0.0625
4 Wallace Savage 0 1 0.7500 0.0625
7 Ryan Wiggins 0 1 0.7333 0.0611
8 Steven Maisonneuve 1 7 0.7228 0.4216
9 Robert Cunningham 0 12 0.7207 0.7207
10 Robert Gelo 1 12 0.7039 0.7039
11 Matthew Blair 0 7 0.7030 0.4101
12 Jeremy Krammes 0 3 0.6957 0.1739
13 Michael Pacifico 1 12 0.6927 0.6927
14 Nathan Brown 1 11 0.6909 0.6333
15 Terrence Lee 0 2 0.6897 0.1149
16 Bruce Williams 0 11 0.6890 0.6316
17 Daniel Gray 0 1 0.6875 0.0573
18 Aubrey Conn 1 12 0.6872 0.6872
19 Randolph Tidd 0 11 0.6848 0.6277
20 Chris Papageorge 0 12 0.6816 0.6816
20 Keven Talbert 2 12 0.6816 0.6816
22 Michael Linder 0 8 0.6803 0.4535
23 Heather Kohler 0 9 0.6767 0.5075
24 Nicholas Cinco 0 10 0.6735 0.5612
25 Jeremy Mounce 0 7 0.6731 0.3926
26 Chester Todd 1 12 0.6704 0.6704
26 George Sweet 2 12 0.6704 0.6704
26 Marc Agne 1 12 0.6704 0.6704
26 Randy Dick 1 12 0.6704 0.6704
30 Matthew Schultz 0 12 0.6648 0.6648
31 Erik Neumann 0 11 0.6627 0.6075
31 Travis Delagardelle 1 11 0.6627 0.6075
33 Pamela Augustine 0 9 0.6617 0.4963
34 David Dupree 0 11 0.6606 0.6055
35 Anthony Bloss 0 12 0.6592 0.6592
35 Christopher Sims 1 12 0.6592 0.6592
35 Heather Ellenberger 0 12 0.6592 0.6592
35 Jennifer Bouland 0 12 0.6592 0.6592
35 Shaun Dahl 1 12 0.6592 0.6592
40 Bradley Hobson 0 11 0.6545 0.6000
41 Brayant Rivera 0 12 0.6536 0.6536
41 Rafael Torres 0 12 0.6536 0.6536
43 Clevante Granville 0 10 0.6531 0.5442
44 George Hall 0 3 0.6522 0.1630
45 Gregory Brown 1 12 0.6480 0.6480
45 Kevin Kehoe 0 12 0.6480 0.6480
45 Michelle Fraterrigo 0 12 0.6480 0.6480
48 Patrick Tynan 0 11 0.6463 0.5924
48 William Schouviller 1 11 0.6463 0.5924
50 Bryson Scott 0 10 0.6443 0.5369
51 Daniel Baller 0 12 0.6425 0.6425
51 Darryle Sellers 0 12 0.6425 0.6425
51 George Brown 1 12 0.6425 0.6425
51 Jason Schattel 0 12 0.6425 0.6425
51 Jeremy Stieler 0 12 0.6425 0.6425
51 Ryan Cvik 0 12 0.6425 0.6425
51 Shawn Carden 0 12 0.6425 0.6425
58 Daniel Halse 0 11 0.6424 0.5889
59 Philip Driskill 1 9 0.6423 0.4817
60 Brian Hollmann 0 9 0.6412 0.4809
61 Robert Sokol 0 10 0.6395 0.5329
62 Karen Coleman 0 11 0.6380 0.5848
62 Thomas Brenstuhl 1 11 0.6380 0.5848
64 Nahir Shepard 0 12 0.6369 0.6369
64 Nicole Dike 0 12 0.6369 0.6369
64 Pablo Burgosramos 1 12 0.6369 0.6369
67 Paul Presti 0 10 0.6358 0.5298
68 Daniel Major 0 11 0.6341 0.5813
69 Kevin Buettner 0 12 0.6313 0.6313
69 Michael Moss 0 12 0.6313 0.6313
69 Walter Archambo 0 12 0.6313 0.6313
72 Ryan Baum 0 10 0.6291 0.5242
73 Brandon Parks 0 10 0.6284 0.5237
74 Jordan Forwood 0 6 0.6277 0.3138
75 George Mancini 0 10 0.6259 0.5216
76 Edward Ford 0 12 0.6257 0.6257
76 Jared Kaanga 0 12 0.6257 0.6257
76 Jeffrey Rudderforth 0 12 0.6257 0.6257
76 Richard Beeghley 1 12 0.6257 0.6257
76 Thomas Mccoy 0 12 0.6257 0.6257
81 Steward Hogans 0 8 0.6250 0.4167
82 James Small 0 10 0.6242 0.5202
83 Antonio Mitchell 0 12 0.6201 0.6201
83 David Humes 0 12 0.6201 0.6201
83 Montee Brown 1 12 0.6201 0.6201
83 Scott Lefton 0 12 0.6201 0.6201
83 Stephen Bush 1 12 0.6201 0.6201
88 David Plate 0 9 0.6194 0.4645
89 Earl Dixon 0 11 0.6182 0.5667
90 Noah Gosswiller 0 10 0.6174 0.5145
91 Kenneth Nielsen 0 7 0.6168 0.3598
92 Anthony Brinson 0 9 0.6148 0.4611
93 Diance Durand 1 12 0.6145 0.6145
93 Jennifer Arty 0 12 0.6145 0.6145
93 Jonathon Leslein 0 12 0.6145 0.6145
93 Kamar Morgan 0 12 0.6145 0.6145
93 Karen Richardson 1 12 0.6145 0.6145
93 Michael Branson 0 12 0.6145 0.6145
99 Paul Seitz 0 9 0.6136 0.4602
100 Darvin Graham 0 11 0.6135 0.5624
101 Zechariah Ziebarth 0 11 0.6121 0.5611
102 David Hadley 0 5 0.6104 0.2543
103 Nicholas Nguyen 0 12 0.6089 0.6089
103 Ramar Williams 0 12 0.6089 0.6089
103 Terry Hardison 0 12 0.6089 0.6089
106 Yiming Hu 0 10 0.6081 0.5068
107 Brian Patterson 0 10 0.6067 0.5056
108 Keisha Vasquez 1 10 0.6053 0.5044
109 Cheryl Brown 0 11 0.6037 0.5534
110 Jason Jackson 0 12 0.6034 0.6034
110 Louie Renew 1 12 0.6034 0.6034
110 Vincent Scannelli 0 12 0.6034 0.6034
113 Derrick Elam 0 9 0.6029 0.4522
114 Wayne Gokey 0 5 0.6026 0.2511
115 Jonathan Knight 0 6 0.6022 0.3011
116 Christopher Mulcahy 0 11 0.6000 0.5500
116 Michael Moore 0 10 0.6000 0.5000
118 Amy Asberry 0 8 0.5984 0.3989
119 Cade Martinez 0 12 0.5978 0.5978
119 Kevin Green 0 6 0.5978 0.2989
119 Kristen White 0 12 0.5978 0.5978
119 Rachel Follo 1 12 0.5978 0.5978
119 Trevor Macgavin 0 12 0.5978 0.5978
124 Ryan Shipley 0 10 0.5973 0.4978
125 Jeffrey Zornes 0 11 0.5939 0.5444
126 Adam Konkle 0 2 0.5938 0.0990
126 Cherylynn Vidal 0 4 0.5938 0.1979
126 Jeffrey Dusza 0 2 0.5938 0.0990
129 Matthew Olguin 0 12 0.5922 0.5922
129 Melissa Printup 0 12 0.5922 0.5922
131 Jose Torres Mendoza 0 10 0.5894 0.4912
132 Thomas Cho 0 7 0.5888 0.3435
133 Tara Bridgett 0 7 0.5872 0.3425
134 Ronald Schmidt 0 11 0.5854 0.5366
135 Megan Fitzgerald 0 7 0.5833 0.3403
136 Marcus Evans 0 11 0.5828 0.5342
137 Jason Miranda 0 6 0.5824 0.2912
138 Joshua Tracey 0 11 0.5818 0.5333
139 Jennifer Wilson 0 6 0.5806 0.2903
140 Bunnaro Sun 0 11 0.5783 0.5301
141 Wayne Schofield 1 12 0.5754 0.5754
142 Akilah Gamble 1 9 0.5746 0.4310
142 Anthony Rockemore 0 9 0.5746 0.4310
144 Jonathan Smith 0 10 0.5638 0.4698
145 Joseph Martin 0 7 0.5607 0.3271
146 Desmond Jenkins 0 6 0.5604 0.2802
147 Kyle May 0 11 0.5576 0.5111
148 Sheryl Claiborne-Smith 0 9 0.5564 0.4173
149 Min Choi 0 5 0.5526 0.2303
149 Richard Conkle 0 10 0.5526 0.4605
151 Jack Wheeler 0 11 0.5515 0.5055
152 Steven Webster 0 10 0.5503 0.4586
153 Lawrence Thuotte 1 4 0.5484 0.1828
154 Gary Lawrence 0 12 0.5475 0.5475
155 Donald Park 0 3 0.5435 0.1359
156 Robert Lynch 0 11 0.5366 0.4919
157 David Kim 0 2 0.5312 0.0885
157 Monte Henderson 0 2 0.5312 0.0885
159 Robert Martin 0 10 0.5306 0.4422
160 Gabriel Quinones 0 8 0.5246 0.3497
161 Jamie Ainsleigh-Wong 0 6 0.5217 0.2609
162 Jay Kelly 0 7 0.5140 0.2998
163 Andrew Gray 0 10 0.5099 0.4249
164 Antonio Chapa 0 1 0.5000 0.0417
164 Vincent Kandian 0 4 0.5000 0.1667
164 Zachary Brosemer 0 1 0.5000 0.0417
167 Ashlyn Dortch 0 5 0.4805 0.2002
168 Ashley Johnson 0 5 0.4795 0.1998
169 Gabrieal Feiling 0 2 0.4688 0.0781
170 Jasprin Smith 0 1 0.3750 0.0312
170 Robert Epps 0 1 0.3750 0.0312

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 12
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Robert Cunningham 0 12 0.7207 0.7207
2 Robert Gelo 1 12 0.7039 0.7039
3 Michael Pacifico 1 12 0.6927 0.6927
4 Aubrey Conn 1 12 0.6872 0.6872
5 Chris Papageorge 0 12 0.6816 0.6816
5 Keven Talbert 2 12 0.6816 0.6816
7 Chester Todd 1 12 0.6704 0.6704
7 George Sweet 2 12 0.6704 0.6704
7 Marc Agne 1 12 0.6704 0.6704
7 Randy Dick 1 12 0.6704 0.6704
11 Matthew Schultz 0 12 0.6648 0.6648
12 Anthony Bloss 0 12 0.6592 0.6592
12 Christopher Sims 1 12 0.6592 0.6592
12 Heather Ellenberger 0 12 0.6592 0.6592
12 Jennifer Bouland 0 12 0.6592 0.6592
12 Shaun Dahl 1 12 0.6592 0.6592
17 Brayant Rivera 0 12 0.6536 0.6536
17 Rafael Torres 0 12 0.6536 0.6536
19 Gregory Brown 1 12 0.6480 0.6480
19 Kevin Kehoe 0 12 0.6480 0.6480
19 Michelle Fraterrigo 0 12 0.6480 0.6480
22 Daniel Baller 0 12 0.6425 0.6425
22 Darryle Sellers 0 12 0.6425 0.6425
22 George Brown 1 12 0.6425 0.6425
22 Jason Schattel 0 12 0.6425 0.6425
22 Jeremy Stieler 0 12 0.6425 0.6425
22 Ryan Cvik 0 12 0.6425 0.6425
22 Shawn Carden 0 12 0.6425 0.6425
29 Nahir Shepard 0 12 0.6369 0.6369
29 Nicole Dike 0 12 0.6369 0.6369
29 Pablo Burgosramos 1 12 0.6369 0.6369
32 Nathan Brown 1 11 0.6909 0.6333
33 Bruce Williams 0 11 0.6890 0.6316
34 Kevin Buettner 0 12 0.6313 0.6313
34 Michael Moss 0 12 0.6313 0.6313
34 Walter Archambo 0 12 0.6313 0.6313
37 Randolph Tidd 0 11 0.6848 0.6277
38 Edward Ford 0 12 0.6257 0.6257
38 Jared Kaanga 0 12 0.6257 0.6257
38 Jeffrey Rudderforth 0 12 0.6257 0.6257
38 Richard Beeghley 1 12 0.6257 0.6257
38 Thomas Mccoy 0 12 0.6257 0.6257
43 Antonio Mitchell 0 12 0.6201 0.6201
43 David Humes 0 12 0.6201 0.6201
43 Montee Brown 1 12 0.6201 0.6201
43 Scott Lefton 0 12 0.6201 0.6201
43 Stephen Bush 1 12 0.6201 0.6201
48 Diance Durand 1 12 0.6145 0.6145
48 Jennifer Arty 0 12 0.6145 0.6145
48 Jonathon Leslein 0 12 0.6145 0.6145
48 Kamar Morgan 0 12 0.6145 0.6145
48 Karen Richardson 1 12 0.6145 0.6145
48 Michael Branson 0 12 0.6145 0.6145
54 Nicholas Nguyen 0 12 0.6089 0.6089
54 Ramar Williams 0 12 0.6089 0.6089
54 Terry Hardison 0 12 0.6089 0.6089
57 Erik Neumann 0 11 0.6627 0.6075
57 Travis Delagardelle 1 11 0.6627 0.6075
59 David Dupree 0 11 0.6606 0.6055
60 Jason Jackson 0 12 0.6034 0.6034
60 Louie Renew 1 12 0.6034 0.6034
60 Vincent Scannelli 0 12 0.6034 0.6034
63 Bradley Hobson 0 11 0.6545 0.6000
64 Cade Martinez 0 12 0.5978 0.5978
64 Kristen White 0 12 0.5978 0.5978
64 Rachel Follo 1 12 0.5978 0.5978
64 Trevor Macgavin 0 12 0.5978 0.5978
68 Patrick Tynan 0 11 0.6463 0.5924
68 William Schouviller 1 11 0.6463 0.5924
70 Matthew Olguin 0 12 0.5922 0.5922
70 Melissa Printup 0 12 0.5922 0.5922
72 Daniel Halse 0 11 0.6424 0.5889
73 Karen Coleman 0 11 0.6380 0.5848
73 Thomas Brenstuhl 1 11 0.6380 0.5848
75 Daniel Major 0 11 0.6341 0.5813
76 Wayne Schofield 1 12 0.5754 0.5754
77 Earl Dixon 0 11 0.6182 0.5667
78 Darvin Graham 0 11 0.6135 0.5624
79 Nicholas Cinco 0 10 0.6735 0.5612
80 Zechariah Ziebarth 0 11 0.6121 0.5611
81 Cheryl Brown 0 11 0.6037 0.5534
82 Christopher Mulcahy 0 11 0.6000 0.5500
83 Gary Lawrence 0 12 0.5475 0.5475
84 Jeffrey Zornes 0 11 0.5939 0.5444
85 Clevante Granville 0 10 0.6531 0.5442
86 Bryson Scott 0 10 0.6443 0.5369
87 Ronald Schmidt 0 11 0.5854 0.5366
88 Marcus Evans 0 11 0.5828 0.5342
89 Joshua Tracey 0 11 0.5818 0.5333
90 Robert Sokol 0 10 0.6395 0.5329
91 Bunnaro Sun 0 11 0.5783 0.5301
92 Paul Presti 0 10 0.6358 0.5298
93 Ryan Baum 0 10 0.6291 0.5242
94 Brandon Parks 0 10 0.6284 0.5237
95 George Mancini 0 10 0.6259 0.5216
96 James Small 0 10 0.6242 0.5202
97 Noah Gosswiller 0 10 0.6174 0.5145
98 Kyle May 0 11 0.5576 0.5111
99 Heather Kohler 0 9 0.6767 0.5075
100 Yiming Hu 0 10 0.6081 0.5068
101 Brian Patterson 0 10 0.6067 0.5056
102 Jack Wheeler 0 11 0.5515 0.5055
103 Keisha Vasquez 1 10 0.6053 0.5044
104 Michael Moore 0 10 0.6000 0.5000
105 Ryan Shipley 0 10 0.5973 0.4978
106 Pamela Augustine 0 9 0.6617 0.4963
107 Robert Lynch 0 11 0.5366 0.4919
108 Jose Torres Mendoza 0 10 0.5894 0.4912
109 Philip Driskill 1 9 0.6423 0.4817
110 Brian Hollmann 0 9 0.6412 0.4809
111 Jonathan Smith 0 10 0.5638 0.4698
112 David Plate 0 9 0.6194 0.4645
113 Anthony Brinson 0 9 0.6148 0.4611
114 Richard Conkle 0 10 0.5526 0.4605
115 Paul Seitz 0 9 0.6136 0.4602
116 Steven Webster 0 10 0.5503 0.4586
117 Michael Linder 0 8 0.6803 0.4535
118 Derrick Elam 0 9 0.6029 0.4522
119 Robert Martin 0 10 0.5306 0.4422
120 Akilah Gamble 1 9 0.5746 0.4310
120 Anthony Rockemore 0 9 0.5746 0.4310
122 Andrew Gray 0 10 0.5099 0.4249
123 Steven Maisonneuve 1 7 0.7228 0.4216
124 Sheryl Claiborne-Smith 0 9 0.5564 0.4173
125 Steward Hogans 0 8 0.6250 0.4167
126 Matthew Blair 0 7 0.7030 0.4101
127 Amy Asberry 0 8 0.5984 0.3989
128 Jeremy Mounce 0 7 0.6731 0.3926
129 Kenneth Nielsen 0 7 0.6168 0.3598
130 Gabriel Quinones 0 8 0.5246 0.3497
131 Thomas Cho 0 7 0.5888 0.3435
132 Tara Bridgett 0 7 0.5872 0.3425
133 Megan Fitzgerald 0 7 0.5833 0.3403
134 Joseph Martin 0 7 0.5607 0.3271
135 Brittany Pillar 0 5 0.7571 0.3155
136 Jordan Forwood 0 6 0.6277 0.3138
137 Jonathan Knight 0 6 0.6022 0.3011
138 Jay Kelly 0 7 0.5140 0.2998
139 Kevin Green 0 6 0.5978 0.2989
140 Jason Miranda 0 6 0.5824 0.2912
141 Jennifer Wilson 0 6 0.5806 0.2903
142 Desmond Jenkins 0 6 0.5604 0.2802
143 Jamie Ainsleigh-Wong 0 6 0.5217 0.2609
144 David Hadley 0 5 0.6104 0.2543
145 Wayne Gokey 0 5 0.6026 0.2511
146 Min Choi 0 5 0.5526 0.2303
147 Ashlyn Dortch 0 5 0.4805 0.2002
148 Ashley Johnson 0 5 0.4795 0.1998
149 Cherylynn Vidal 0 4 0.5938 0.1979
150 Lawrence Thuotte 1 4 0.5484 0.1828
151 Jeremy Krammes 0 3 0.6957 0.1739
152 Vincent Kandian 0 4 0.5000 0.1667
153 George Hall 0 3 0.6522 0.1630
154 Donald Park 0 3 0.5435 0.1359
155 Terrence Lee 0 2 0.6897 0.1149
156 Adam Konkle 0 2 0.5938 0.0990
156 Jeffrey Dusza 0 2 0.5938 0.0990
158 David Kim 0 2 0.5312 0.0885
158 Monte Henderson 0 2 0.5312 0.0885
160 Gabrieal Feiling 0 2 0.4688 0.0781
161 Clayton Grimes 0 1 0.8750 0.0729
162 Tanaysa Henderson 0 1 0.8571 0.0714
163 Brian Holder 0 1 0.7500 0.0625
163 Sandra Carter 0 1 0.7500 0.0625
163 Wallace Savage 0 1 0.7500 0.0625
166 Ryan Wiggins 0 1 0.7333 0.0611
167 Daniel Gray 0 1 0.6875 0.0573
168 Antonio Chapa 0 1 0.5000 0.0417
168 Zachary Brosemer 0 1 0.5000 0.0417
170 Jasprin Smith 0 1 0.3750 0.0312
170 Robert Epps 0 1 0.3750 0.0312

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 12 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
  mutate(Name = str_to_title(Name))
week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
  mutate(Name = str_to_title(Name))
week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
  mutate(Name = str_to_title(Name))
week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8 , week_9, week_10, week_11, week_12) #, week_13, week_14, week_15, week_16, week_17 , week_18, week_19 , week_20, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```